package com.yide.myworld.exception;

import com.yide.myworld.api_result.IEnumCode;

/**
 * 自定义API异常
 */
public class ApiException extends RuntimeException {
    /**
     * 错误类型枚举
     */
    private IEnumCode errorCode;

    /**
     * 发生错误时，可以给前端返回的数据，便于客户端针对这个data进行业务操作（非必须，必要时才使用）
     */
    private Object errorData;

    public ApiException(IEnumCode errorCode) {
        super(errorCode.getMessage());
        this.errorCode = errorCode;
    }

    public ApiException(IEnumCode errorCode, Object errorData) {
        super(errorCode.getMessage());
        this.errorCode = errorCode;
        this.errorData = errorData;
    }

    public ApiException(String message) {
        super(message);
    }

    public ApiException(Throwable cause) {
        super(cause);
    }

    public ApiException(String message, Throwable cause) {
        super(message, cause);
    }

    public IEnumCode getErrorCode() {
        return errorCode;
    }

    public Object getErrorData() {
        return errorData;
    }
}
